package _66双周赛

func majorityFrequencyGroup(s string) string {
	// 统计每个字符的出现频率
	freq := make([]int, 26)
	for _, c := range s {
		freq[c-'a']++
	}

	// 计算每个频率对应的字符数量（不存储具体字符，节省内存）
	freqCount := make(map[int]int)
	for _, count := range freq {
		if count > 0 {
			freqCount[count]++
		}
	}

	// 找到最佳频率：字符数量最多，若相同则选择频率较大的
	maxSize, bestK := 0, 0
	for k, size := range freqCount {
		if size > maxSize || (size == maxSize && k > bestK) {
			maxSize = size
			bestK = k
		}
	}

	// 收集最佳频率对应的所有字符
	var result []rune
	for i, count := range freq {
		if count == bestK {
			result = append(result, rune('a'+i))
		}
	}

	return string(result)
}
